The present invention generally relates to telecommunications and more specifically to techniques for intelligently switching transactions at the application level based on content of the transaction, dynamic context information for a transport environment, and/or dynamic rules for switching transactions.
When transactions, such as credit card authorizations, debit card transactions, electronic check transactions, etc., are performed at a client, the clients send transactions to a service provider. The service provider provides services to the client, such as credit card authorizations, settlement of transactions, etc. Typically, clients have the transaction routed to a transaction processor of the service provider for processing. The transaction may be routed though various networks. The various networks may be disparate networks that may or may not be reliable.
Typically, the transaction requires a rapid response and high reliability. For example, a user may be performing a credit card transaction with a client. In this transaction, a credit card authorization request may be needed to be sent for processing to the transaction processor, which can facilitate the authorization of the transaction. The transaction may fail or be delayed because one of the various networks the transaction is sent through or the transaction processor that is used to process the transaction for the client has failed. If any failures occur, a client is in danger of losing the transaction and any benefits gained from consummating the transaction.
Conventionally, a transaction may be broken down into a series of packets. Embodiments of the present invention operate on transactions, at the application level, while much of the prior art is directed to routing at the network level, operating on packets. Each individual packet may be routed at the packet level, or routed based on information in the packet, such as information in the header. The following patents describe network-level routing of packets (as opposed to the application level switching of embodiments of the present invention). IBM U.S. Pat. No. 5,974,460 describes selecting one of a number of mirror sites on the interne for downloading data by first determining which of the sites exhibits the best transfer rates at the time of the site selection. DEC U.S. Pat. No. 5,341,477 is similar. Alcatel U.S. Pat. No. 5,754,543 describes routing across a network taking into account the transmission costs. Other patents taking into account transmission costs are U.S. Pat. No. 6,535,488 and Nortel U.S. Pat. No. 6,487,286. DEC U.S. Pat. No. 5,459,837 shows a system for monitoring the performance of servers across a network and for determining which server has the most bandwidth to handle the request. Cabletron Systems U.S. Pat. No. 5,521,910 shows packets in canonical frame format, and determining a best path through a network using various metrics. U.S. Pat. No. 6,839,700 describes load balancing of content requests based on document generation costs. U.S. Pat. No. 6,754,188 describes routing packets based on packet content—whether it is voice, video, or file transfer.
IBM U.S. Pat. No. 6,460,120 shows a network processor that with the first three layers of the OSI model. A processor, which accesses layers 4 and above for flow control, to make routing decisions based on quality of service, is shown in Top Layer Networks U.S. Pat. No. 6,430,184. This allows distinguishing between priority-based email and bandwidth—guarantee-based multimedia.
Intel U.S. Pat. No. 6,732,175 shows switching in a network based on examining the content of a packet to determine the type of business transaction (e.g., purchase order) and forwarding it to an appropriate server for handling that type of service. This is done after the message is sent over a network to a web site destination, not before it is sent across a network. There are many examples of systems at a destination server that route messages based on content, such as intelligent load balancers. Diebold U.S. Pat. No. 6,302,326 shows converting financial messages into a common format, then routing them to an appropriate program in a system. EDS U.S. Pat. No. 5,805,798 describes network nodes that monitor the status of financial processing servers, and route messages to a backup in the event of unavailability.
The above patents are focused either on routing the individual packets at the packet level or routing data based on static rules. This may provide efficient routing of the packet; however, switching of the transaction at the application level based on dynamic context of the transport environment and dynamic rules is not addressed. In addition, where choosing between processors is done, this is typically at a node, such as a load balancer, between the network and the destination. Accordingly, it is desirable to provide techniques for intelligently switching a transaction at the application level.
Current technologies at the application level require a client to handle the application level interaction. The client is required to change its software systems in response to changes at a transaction processor, and also is required to support the different message formats expected by the different transaction processors. Client also need to handle failures on server systems and networks, and failover to alternate server processors so as to provide a continuous operation to the client's users.